RAG(檢索增強生成)架構與安全盲點 RAG(Retrieval-Augmented Generation)為了彌補 LLM 知識庫更新不及與幻覺問題,引入了外部知識庫。然而,外部檢索資料的引入打破了 LLM 系統的信任邊界。 傳統系統假設資料庫內的資料是「乾淨的」,但在 RAG 中,Vector DB 儲存的向量資料(Embeddings)多數來自外部爬蟲、使用者上傳文件或第三方 API。當這些資料未經消毒就直接被檢索並拼接進 Prompt 時,Vector DB 便從單純的資料儲存庫演化為攻擊者進行間接注入(Indirect Injection)的跳板。
Vector DB 關鍵攻擊面剖析
向量空間污染(Vector Space Poisoning):攻擊者設計特定的文字片段,使其生成出的 Embedding 向量在數學上(如 Cosine Similarity)極度靠近常態熱門查詢,確保惡意資料在 Top-K 檢索中高機率被打包進 Prompt。
Metadata 注入與過濾器繞過(Metadata Injection):Vector DB 通常結合 Metadata 進行 SQL-like 欄位過濾(如 department = 'HR')。若 Metadata 解析器存在漏洞,攻擊者可進行欄位繞過或存取跨租戶(Cross-tenant)資料。
向量資料庫 Denial of Service (Algorithmic DoS):構造高維度對抗性查詢或大量高相似度亂碼,迫使 HNSW(Hierarchical Navigable Small World)等向量索引搜尋演算法降級為全表掃描($O(N)$ 複雜度),造成記憶體爆表與 CPU 高負載。